/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sys.dao;

import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.ini4j.Ini;
import sys.bean.ParametrosBean;
import sys.utils.ConexaoADS;
import sys.utils.Mensagens;
import static sys.utils.Utils.dirFileConfig;

/**
 *
 * @author Cesar Daniel
 */
public class ParametrosDao {

    //lista parametros da empresa
    public static ParametrosBean listaParametros() throws SQLException, IOException {

        Connection con = ConexaoADS.getConection();

        String sql = "SELECT C00CODIGO, C00RAZAO, C00FANTA, C00INSC, C00CGC, C00CID, C00EST FROM SPAC00";

        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        ParametrosBean sp = new ParametrosBean();

        while (rs.next()) {
            sp.setCodigo(rs.getString("C00CODIGO"));
            sp.setRazao(rs.getString("C00RAZAO"));
            sp.setFantasia(rs.getString("C00FANTA"));
            sp.setIe(rs.getString("C00INSC"));
            sp.setCnpj(rs.getString("C00CGC"));
            sp.setCidade(rs.getString("C00CID"));
            sp.setUf(rs.getString("C00EST"));
        }

        stmt.close();
        con.close();

        return sp;

    }

    //Identifica e retorna os blocos com sua descricao do arquivo config.ini
    public static List<ParametrosBean> listaEmpresas() throws IOException {
        List<ParametrosBean> listaEmpresas = new ArrayList<>();
        try {

            Ini ini = new Ini(new FileReader(dirFileConfig()));
            for (String sectionName : ini.keySet()) {
                ParametrosBean pb = new ParametrosBean();
                if (!sectionName.equals("PARAMETROS")) {
                    pb.setBloco(sectionName);
                    pb.setDescricao(ini.get(sectionName, "descricao"));
                    listaEmpresas.add(pb);
                }
            }

        } catch (FileNotFoundException ex) {
            Mensagens.msgErro("erro ao carregar blocos\n" + ex.getMessage());
        }
        return listaEmpresas;
    }

    //utilizado para listar os dados das empresas cadastradas
    public static List<ParametrosBean> listaDadosEmpresas() throws IOException {

        List<ParametrosBean> listaDadosEmpresas = new ArrayList<>();

        Ini ini = new Ini(new File(dirFileConfig()));
        //lista com descricao dos parametros apenas
        List<ParametrosBean> listaDescricaoPar = ParametrosDao.listaEmpresas();

        for (ParametrosBean param : listaDescricaoPar) {
            ParametrosBean pb = new ParametrosBean();

            pb.setBloco(param.getBloco());
            pb.setDescricao(ini.get(param.getBloco(), "descricao"));
            pb.setDirectory(ini.get(param.getBloco(), "directory"));
            pb.setPort(ini.get(param.getBloco(), "port"));
            pb.setServer_ip(ini.get(param.getBloco(), "server/ip"));

            listaDadosEmpresas.add(pb);
        }
        return listaDadosEmpresas;
    }
}
